﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ConciseMarkupLanguage.Tags;
using ConciseMarkupLanguage.Utils;

namespace CML.Tags
{
    public class Html4
    {
        /// <summary>
        /// Defines an acronym.
        /// </summary>
        /// <param name="attrs"></param>
        /// <param name="content"></param>
        /// <returns></returns>
        /// <remarks>An acronym can be spoken as if it were a word, example NATO, NASA, ASAP, GUI. By marking up acronyms you can give useful information to browsers, spellcheckers, screen readers, translation systems and search-engines.</remarks>
        [TemplateTag]
        public static string acronym(AttrDict attrs, string content)
        {
            return Html.Tag("acronym", attrs, content);
        }

        /// <summary>
        /// Defines an embedded applet.
        /// </summary>
        /// <param name="attrs"></param>
        /// <param name="content"></param>
        /// <returns></returns>
        [TemplateTag]
        public static string applet(AttrDict attrs, string content)
        {
            return Html.Tag("applet", attrs, content);
        }

        /// <summary>
        /// Defines a default font, color, or size for the text in a page.
        /// </summary>
        /// <param name="attrs"></param>
        /// <param name="content"></param>
        /// <returns></returns>
        [TemplateTag]
        public static string basefont(AttrDict attrs, string content)
        {
            return Html.Tag("basefont", attrs, content);
        }

        /// <summary>
        /// Defines big text.
        /// </summary>
        /// <param name="attrs"></param>
        /// <param name="content"></param>
        /// <returns></returns>
        /// <remarks>Font-style tags are defined in HTML4, but it is strongly recommended to use CSS styling instead.</remarks>
        [TemplateTag]
        public static string big(AttrDict attrs, string content)
        {
            return Html.Tag("big", attrs, content);
        }

        /// <summary>
        /// Defines centered text.
        /// </summary>
        /// <param name="attrs"></param>
        /// <param name="content"></param>
        /// <returns></returns>
        [TemplateTag]
        public static string center(AttrDict attrs, string content)
        {
            return Html.Tag("center", attrs, content);
        }

        /// <summary>
        /// Defines a directory list.
        /// </summary>
        /// <param name="attrs"></param>
        /// <param name="content"></param>
        /// <returns></returns>
        [TemplateTag]
        public static string dir(AttrDict attrs, string content)
        {
            return Html.Tag("dir", attrs, content);
        }

        /// <summary>
        /// Defines a window (a frame) in a frameset.
        /// </summary>
        /// <param name="attrs"></param>
        /// <param name="content"></param>
        /// <returns></returns>
        [TemplateTag]
        public static string frame(AttrDict attrs, string content)
        {
            return Html.Tag("frame", attrs, content);
        }

        /// <summary>
        /// Defines a set of frames.
        /// </summary>
        /// <param name="attrs"></param>
        /// <param name="content"></param>
        /// <returns></returns>
        [TemplateTag]
        public static string frameset(AttrDict attrs, string content)
        {
            return Html.Tag("frameset", attrs, content);
        }

        /// <summary>
        /// Defines an alternate content for users that do not support frames.
        /// </summary>
        /// <param name="attrs"></param>
        /// <param name="content"></param>
        /// <returns></returns>
        [TemplateTag]
        public static string noframes(AttrDict attrs, string content)
        {
            return Html.Tag("noframes", attrs, content);
        }

        /// <summary>
        /// Defines strikethrough text.
        /// </summary>
        /// <param name="attrs"></param>
        /// <param name="content"></param>
        /// <returns></returns>
        [TemplateTag]
        public static string s(AttrDict attrs, string content)
        {
            return Html.Tag("s", attrs, content);
        }

        /// <summary>
        /// Defines teletype text.
        /// </summary>
        /// <param name="attrs"></param>
        /// <param name="content"></param>
        /// <returns></returns>
        /// <remarks>Font-style tags are defined in HTML4, but it is strongly recommended to use CSS styling instead.</remarks>
        [TemplateTag]
        public static string tt(AttrDict attrs, string content)
        {
            return Html.Tag("tt", attrs, content);
        }

        /// <summary>
        /// Defines underlined text.
        /// </summary>
        /// <param name="attrs"></param>
        /// <param name="content"></param>
        /// <returns></returns>
        [TemplateTag]
        public static string u(AttrDict attrs, string content)
        {
            return Html.Tag("u", attrs, content);
        }

        /// <summary>
        /// Defines preformatted text.
        /// </summary>
        /// <param name="attrs"></param>
        /// <param name="content"></param>
        /// <returns></returns>
        [TemplateTag]
        public static string xmp(AttrDict attrs, string content)
        {
            return Html.Tag("xmp", attrs, content);
        }
    }
}
